package pers.vic.upload.socket.model;

import pers.vic.upload.constant.FileType;

import java.io.File;

/**
 * 描述: 真实的文件信息
 * @author Vic.xu
 * @date 2022-06-09 11:26
 */
public class RealFile {

    /**
     * 文件名：全路径, 应保存在临时目录
     */
    private String filename;

    /**
     * 文件类型
     */
    private FileType type;

    private File file;

    public RealFile() {
    }

    public RealFile(String filename, FileType type) {
        this.filename = filename;
        this.type = type;
    }


    public String getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    /**
     * 当前以及上传的文件的长度
     * @return length
     */
    public long currentLength(){
        File file = new File(filename);
        if (!file.exists()){
            return 0L;
        }
        return file.length();
    }

    /**
     * 当前RealFile对应的file文件
     * @return
     */
    public File file(){
        if (file == null) {
            file = new File(filename);
        }
        return file;
    }

    public FileType getType() {
        return type;
    }

    public void setType(FileType type) {
        this.type = type;
    }

}
